package cz.semjob.learning.classifier.benchmark;

import java.io.Serializable;

import weka.classifiers.Classifier;
import cz.semjob.learning.instances.creator.IInstanceCreator;

public abstract class ClassifierBenchmarkResults implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5335782619678668841L;

	protected String classifierInfo;

	protected Classifier classifier;

	protected ClassifierBenchmarkResult overallResult;

	protected String name;

	protected DataSetStatistics dataSetStatistics;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getClassifierInfo() {
		return classifierInfo;
	}

	public void setOverallResult(double precision, double recall,
			double trueNegativeRate, double accuracy) {
		this.setOverallResult(new ClassifierBenchmarkResult(precision, recall,
				trueNegativeRate, accuracy));
	}

	public ClassifierBenchmarkResult getOverallResult() {
		return overallResult;
	}

	public void setOverallResult(ClassifierBenchmarkResult overallResult) {
		this.overallResult = overallResult;
	}

	public Classifier getClassifier() {
		return classifier;
	}

	public abstract String toPrettyString();

	public abstract String toInfoString();

	public abstract IInstanceCreator getInstanceCreator();

	public DataSetStatistics getDataSetStatistics() {
		return dataSetStatistics;
	}

	public void setDataSetStatistics(DataSetStatistics dataSetStatistics) {
		this.dataSetStatistics = dataSetStatistics;
	}

}
